package todososdados.rmi;


import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.JMSException;
import javax.naming.NamingException;
import todososdados.jms.JmsPublisher;


public class ServentLeiloeiro extends UnicastRemoteObject implements InterfaceLeiloeiro
{
    JmsPublisher p = new JmsPublisher("ConnectionFactory", "topic/flightStatus");
    //Processo pc;
    
    private int cod;
    private double val;
    private String nome, nome2;
    
    //private Pessoa pessoa;
    private ArrayList<InterfaceCli> pessoas = new ArrayList<InterfaceCli>();
    
    
    public ServentLeiloeiro() throws RemoteException, JMSException, NamingException, InterruptedException
    {
        //pc = new Processo();
    }
    
    @Override
    public void Hello() throws RemoteException
    {
        System.out.println("Servidor diz Hello!");
    }
    
    @Override
    public void insereListaInteresse(String nomeCli, InterfaceCli refCli)throws RemoteException
    {
        pessoas.add(refCli);
        System.out.println("3");
        nome2 = nomeCli;
        System.out.println("Pessoa " +nome2+ " está interessada no leilão");
    }
    
    
    public void darLanceLeilao(String lance) throws RemoteException
    {
        try {
            p.publish(lance);           
            System.out.println("222");
            StringTokenizer st = new StringTokenizer(lance);
            
            System.out.println("211");
            this.nome = st.nextToken();
            this.cod = Integer.parseInt(st.nextToken());
            this.val = Double.parseDouble(st.nextToken());
            
            /*for (int i = 0; i < pessoas.size(); i++ )
            {
                pessoas.get(i).notificaClientes(nome, cod, val);
            }*/
            
            
        } catch (JMSException ex) {
            Logger.getLogger(ServentLeiloeiro.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    
    /*public void darLanceLeilao(String lance) throws RemoteException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    */
}
